package com.long1008.mapper;

import com.long1008.pojo.*;
import org.apache.ibatis.annotations.Param;
import com.long1008.pojo.*;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface PersonnelMapper {

    Long getTrainCount();

    Long getAdjustSalaryCount();

    Long getMovesCountByPage();

    List<EmpTrain> getTrainsByPage(
            @Param("page") Integer page,
            @Param("size") Integer size);
    List<EmpMove> getMovesByPage(
            @Param("page") Integer page,
            @Param("size") Integer size);

    List<AdjustSalary> getAdjustSalarysByPage(
            @Param("page") Integer page,
            @Param("size") Integer size);
    List<AdjustSalary> getAdjustSalarysByKeywords(
            @Param("keywords") String keywords,
            @Param("page") Integer page,
            @Param("size") Integer size);
    List<AdjustSalary> getAdjustSalarysByDate(
            @Param("date") Date date,
            @Param("page") Integer page,
            @Param("size") Integer size);

    List<EmpMove> getMovesByKeywords(
            @Param("keywords") String keywords,
            @Param("page") Integer page,
            @Param("size") Integer size);

    List<EmpTrain> getTrainsByEmpName(
            @Param("empName") String empName,
            @Param("page") Integer page,
            @Param("size") Integer size);
    List<EmpTrain> getTrainsByTrainDate(
            @Param("trainDate") Date trainDate,
            @Param("page") Integer page,
            @Param("size") Integer size);

    int addEc(EmpEc empEc);

    int addRetire(EmpRetire empRetire);

    List<EmpTrain> findAllTrains();

    List<EmpEc> getAllEmpEc();

    int addEmpTrain(@Param("empTrain") EmpTrain empTrain);

    int updateEmpTrain(@Param("empTrain") EmpTrain empTrain);

    int deleteEmpTrain(@Param("ids") String[] ids);

    List<EmpTrain> getAllEmpTrains();

    Long getTotalByKeywords(@Param("keywords") String keywords);

    Long getAdjustSalaryTotalCountByKewords(@Param("keywords") String keywords);

    Long getAdjustSalaryTotalCountByDate(@Param("date") Date date);

    Long getTotalByEmpName(@Param("empName") String empName);

    Long getTotalByTrainDate(@Param("trainDate") Date trainDate);


    int addAdjustSalary(@Param("adjustSalary") AdjustSalary adjustSalary);
    // 更新实际薪资
    int updateAdjustSalaryToAllSalary(@Param("allSalary") AllSalary allSalary);
    // 添加
    int addAdjustSalaryToAllSalary(@Param("allSalary") AllSalary allSalary);

    int updateAdjustSalary(@Param("adjustSalary") AdjustSalary adjustSalary);

    int deleteAdjustSalary(@Param("ids") String[] ids);

    List<AdjustSalary> getAllAdjustSalary();

    int addEmpMove(@Param("empMove") EmpMove empMove);

    int updateEmpMove(@Param("empMove") EmpMove empMove);

    int deleteEmpMove(@Param("ids") String[] ids);

    List<EmpMove> getAllEmpMove();

    int updateDepIdAndJobId(@Param("empMove") EmpMove empMove);

    List<EmpMove> getMoveByKeywords(String keywords);

    List<EmpRetire> getAllEmpRetires();


}
